#pragma once

#include <Totem/ComponentHandler.h>
#include <Totem/PropertyHandler.h>
#include <Totem/PropertyListHandler.h>
#include <Totem/Addons/TemplateEventHandler.h>
#include <Totem/Addons/DelegateHandler.h>

namespace Game
{
	class Entity :	public Totem::ComponentHandler<Entity>, 
					public Totem::PropertyHandler<>, 
					public Totem::PropertyListHandler<>, 
					public Totem::Addon::TemplateEventHandler,
					public Totem::Addon::DelegateHandler
	{
	public:
		/// Constructor
		Entity(Totem::ComponentFactory &factory)
	#pragma warning(suppress: 4355)
			: Totem::ComponentHandler<Entity>(*this, factory)
		{
		}
		/// Destructor
		virtual ~Entity() {}
	};
}

